I'm relatively new to both php and mysql and here's my first question:
I have 3 tables. One as the "main table" and two as basically lists/categories of which I can choose and relate them to my main table. So:
Table 1
id name hobby color
1 Peter 1 2
2 Simon 3 2
3 Lisa 2 3
Table 2 would then be hobbies
id name
1 Swimming
2 Football
3 Piano
Same with table 3 and colors.
id name
1 red
2 blue
3 green
Now, I have managed to "relate" the tables with phpmyadmin, but how can I do the following:
I wanna insert data into the first table. But the thing is, I wanna insert a simple number in hobbies or colors. But within the html form, there should be the text related to the is.
So if i choose 'green'(as a string), it should insert 3 into Table 1.
I hope it's clear what i want :D
Thanks for every help in advance.
Simon
Create your html like this:
<select name="color">
<option value="1">red</option>
<option value="2">blue</option>
</select>
When an user select "blue" the value of input.color is "2". So an end user selects an string/color and you can insert the int/id
Related
I have 8 tables with data of sold products. Each table is about a unique product. In Power BI, I want to create a matrix, containing the sold quantities (values) per product (rows), per month (columns), and the number of unique customers who bought the products.
Each of the 8 tables with the sales data has the following structure. So the App ID is different for each table, but is constantly the same within a table. Example for a Cars table:
Customer ID Month App ID
29273 2020-3 1
90283 2018-5 1
55824 2016-12 1
55824 2018-10 1
55824 2021-1 1
So, a bicycle table would have the same structure, but then the App ID's would be, for example 2, in the entire table.
I have two tables that are connected with the 8 product tables in a one-to-many relationship. The Calendar table based on the Month column, and the App table based on the App ID column.
The table Calendar:
Month
2015-1
2015-2
2015-3
2015-4
2015-5
...
...
The table Apps:
ID Name
1 Cars
2 Bicycle
3 Scooter
4 ...
So, the structure is:
I created the Calendar en Apps tables so that I could use them for the matrix, but it doesn't work like I want so far. At the end, I want to create a matrix like this (where P = the number of products sold, and C = the number of customers in that month for that product):
Product 2015-1 2015-2 2015-3 2015-4 2015-5 ...
P C P C P C P C P C
Cars 3 2 5 5 7 6 2 1 4 2
Bicycle 11 9 17 14 5 5 4 4 8 6
Scooter ...
Skateboard ...
As mentioned, I made that Calendar and App table so that I can use the columns from it to fill the labels in the rows and columns. What I am unable to do is create such a 'general variable' of the number of products sold per product, and the number of customers associated with it.
Can someone explain to me how I can fill the matrix with the numbers of products (and customers) sold, so that the matrix looks like the one described above?
I think this is pretty straight forward. You actually don't need the 'Calendar' table as it only contains the same info as is already in the 'Sales' table.
You should configure the matrix like this:
Rows: 'Name' (from the 'Apps' table)
Columns: 'Month' (from the
'Sales' table)
Values:
C = Count distinct of CustomerId (from 'Sales' table) [this counts the unique customers per month and app)
P = Count of CustomerId (from 'Sales' table) [this counts the rows of the 'Sales' table which is your number of products if every row represents 1 sale)
The different aggregations (count distinct, count) can be found under the Values' options:
I have two tables,
User cities user_cities
id name id name user_id city_id
1 aaa 1 cityA 2 1
2 bbb 2 cityB 2 3
3 ccc 3 cityC 1 2
3 3
3 2
Now i am filtering the user by cities. I am having the city_id = 2. So that i have to get the count of users belongs to the city_id 2.
How can i get that using laravel eloquent
As you describe in your answer you have the third table user_cities.
If you have table user_cities then count user like
DB::table('user_cities')->where('city_id', '2')->count();
There are different ways to do this, check https://laravel.com/docs/5.8/queries
But a simple way of doing it could be:
UserCity::whereCityId(2)->count();
Or:
UserCity::where('city_id',2)->count();
If you have set correctly the relationship between them, you can do something like that:
City::where('id', '=', 2)->withCount('users')->get();
It will place a {relation}_count column on your resulting model, and thus you can call it like a property: $city->users_count
Edit: For further information, you can check the official documentation.
Try this query :
$count = City::where('id', 2)->whereHas('users')->count();
I have a table which contains values in a hierarchy structure.
I was wondering if anyone knew of a query where I could loop through each row finding it's ID and then search for rows with a PARENTID of the same value. So for example:
With a table
ID PARENTID LEVEL VALUE
-------------------------------
1 0 COUNTRY USA
2 1 CITY NYC
3 1 CITY LA
4 2 TEAM GIANTS
5 2 TEAM JETS
6 3 TEAM RAMS
7 3 TEAM CHARGERS
I could start by searching for ID:2 (NYC) and from there find all teams in that city. Something like (but I do not know the total loops I'll need to do)
SELECT ID2,VALUE FROM TABLE1 WHERE PARENTID = ID1;
Gives me:
3,LA
6,RAMS
7,CHARGERS
connect by is a common way to loop through a hierarchy like that. If you add start with, you can pick a starting point in the hierarchy.
SELECT table1.*, level
FROM table1
START WITH id = 3
CONNECT BY parentid = PRIOR id;
Please note that level is an Oracle keyword which will tell you how many loops you have stepped through so far. I wouldn't recommend using it as a column name. There's some other pseudocolumns and functions you might find helpful too.
I hava one MySQL Table
id name birthdate city
1 Owen 2011/01/01 USA
2 Mark 2012/05/01 UK
3 Marry 2011/01/01 JP
4 John 2011/01/01 JP
First,I uesd jqgrid to read all row data. But Now,I want to know when birthdate=2011/01/01,how many different city in the table.
Can don't used sql,only used jqgrid plugin?
You are looking for distinct function.
SELECT DISTINCT(city) FROM table WHERE birthday = "2011/01/01";
I have a form in that we have a drop down list ( apple, gova, lemon .. ) each one has some counter like apple =5, gova=3, lemon=6. If i select apple at first then count of apple becomes apple=4, suppose i want to change my selection from drop down list lemon, now lemon should become 5 and apple=5. how to do that ?
code :
<select>
<option>apple </option>
<option>gova </option>
<option>lemon</option>
..
..
</select>
note : these list of fruits im getting from a table called fruits of mysql.
table schema : fruit_table
apple gova lemon ... etc
5 3 6 .....
in advance,thanks for your comments and solutions that you have given.
Decrement the value only when the user submits the form. Not when he changes his select option.
Change the fruit_table schema columns to: fruit_name , count. From your example, it seems column names are fruit names